package com.dys.designpattern.simplefactory.applypay.factory;

import com.dys.designpattern.simplefactory.applypay.service.AliPay;
import com.dys.designpattern.simplefactory.applypay.service.IPay;
import com.dys.designpattern.simplefactory.applypay.service.WeChatPay;

/**
 * @Author: 疾风
 * @ClassName: PayFactory
 * @Description: 支付工厂类
 * @CreateDate: 2024/05/14
 * @Version: v1.0.0
 */
public class PayFactory {

    /**
     * 引入工厂模式之后，代码有如下的优点：
     * 1.实现对象的创建和使用解耦，调用方无需关注对象的创建，直接调用即可。
     * 2.增加的代码的可扩展性和灵活性，添加或者修改对象，只需要在工厂类修改即可，降低代码的维护成本。
     * 3.代码可读性大大增加。
     * @param payType 支付类型
     * @return 支付类型
     */
    public static IPay order(int payType) {
        IPay pay = null;
        if (payType == 1) {
            pay = new WeChatPay();
        } else if (payType == 2) {
            pay = new AliPay();
        } else {
            System.out.println("没有该种支付方式");
        }
        return pay;
    }
}
